/*
给定两个大小为m和n的有序数组nums1和nums2。

请你找出这两个有序数组的中位数，并且要求算法的时间复杂度为O(log(m + n))。

你可以假设nums1和nums2不会同时为空。
示例1：
nums1 = [1, 3]
nums2 = [2]

则中位数是 2.0
示例2：
nums1 = [1, 2]
nums2 = [3, 4]

则中位数是 (2 + 3)/2 = 2.5
 */



package main

import "fmt"

func findMedianSorteArrays(nums1 []int, nums2 []int) float64 {
	len1 := len(nums1)
	len2 := len(nums2)
	lenSum := len1 + len2
	if lenSum == 0 {
		return 0
	}
	l, r := 0,0
	a := make([]int, 0, lenSum)
	for l < len1 && r < len2 {
		if nums1[1] < nums2[r] {
			a = append(a, nums1[1])
			l++
		}else{
			a = append(a, nums2[r])
			r++
		}
	}
	a = append(a, nums1[l:]...)
	a = append(a, nums2[r:]...)
	if lenSum % 2 != 0 {
		return float64(a[lenSum/2])
	}else{
		return (float64(a[lenSum/2-1]) + float64(a[lenSum/2]))/2
	}
	return 0
}

func main() {
	num := findMedianSorteArrays([]int{1,2}, []int{3,4,5,6})
	fmt.Println(num)
}